package cn.community.system.domain;

import com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

// 设备记录
@Setter
@Getter
public class DeviceRecord {
    public static final int APPLYING = 0;    // 申请中
    public static final int RETURN_YES = 1;   // 已归还
    public static final int RETURN_NO = 2;   // 未归还

    public static final int AGREE_YES = 1;   // 已同意
    public static final int AGREE_NO = 2;   // 未同意

    private Long id;
    private String deviceName;           // 设备名称
    private Long deviceId;       // 设备id
    private Integer number;    // 借出/归还数量
    private String association;        //  社团名称
    private Long associationId;       // 社团id

    private Integer isReturn = -1;          // 是否已经归还  （0=申请中，2=未归还，1=已归还）
    private Integer isAgree = -1;          // 是否同意借出  （0=申请中，2=未同意，1=同意）

    private String reason;          // 申请理由
    private String dutyName;          // 负责人
    private String mobile;          // 负责人联系方式
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lendingTime;          // 借出时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date returnTime;          // 归还时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;          // 申请时间

    private String agreeRefuse;  // 借出拒绝理由
    private String returnRefuse;  // 归还拒绝理由

    public String getJsonString(){
        Map<String, Object> map = new HashMap<>();
        map.put("id",id);
        map.put("deviceName",deviceName);
        map.put("deviceId",deviceId);
        map.put("association",association);
        map.put("associationId",associationId);
        map.put("isReturn",isReturn);
        map.put("isAgree",isAgree);
        map.put("reason",reason);
        map.put("agreeRefuse",agreeRefuse);
        map.put("returnRefuse",returnRefuse);
        map.put("dutyName",dutyName);
        map.put("mobile",mobile);
        map.put("lendingTime",lendingTime);
        map.put("returnTime",returnTime);
        map.put("applyTime",applyTime);
        map.put("number",number);
        return JSON.toJSONString(map);
    }
}
